package com.itcam.phaseii.string_;

public class StringBuffer01 {
    public static void main(String[] args) {
        //1. StringBuffer的直接父类是AbstractStringBuilder
        //2. StringBuffer实现了Serializable接口, 即StringBuffer的对象可以串行化
        //3. 在父类中AbstractStringBuilder有属性char[] value,不是final
        //      该value数组存放字符串内容，引出存放在堆中的
        //4. StringBuffer 是一个final类，不能被继承
        //5. 因为StringBuffer字符内容是存在char[] value, 所有变化(增加/删除)
        //      不用每次都更换地址(即不是每次创建新对象)，所以效率高于String
        StringBuffer ambiguous = new StringBuffer("ambiguous");

        // String VS StringBuffer
        // 1.String保存的字符串常量，里面的值不能更改，每次String类的更新实际上就是更改地址，效率较低
        //      private final char value[];放在常量池
        // 2.StringBuffer保存的是字符串变量，里面的值可以更改，每次StringBuffer的更新实际上是更新内容，效率较高
        //      char[] value;放在堆里
    }
}
